#include<bits/stdc++.h>
using namespace std;
const int N=102;

int c,r;
int c0,r0;
char arr[N][N];
bool visit[N][N];
int dr[8]={0,-1,-1,-1,0,1,1,1};
int dc[8]={-1,-1,0,1,1,1,0,-1};
int main(){
	scanf("%d%d%d%d",&c,&r,&c0,&r0);
	for(int i=r;i>=1;--i){
		for(int j=1;j<=c;j++){
			cin>>arr[i][j];
		}
	}
	queue<int> que;
	que.push(r0);
	que.push(c0);
	int day=0;
	memset(visit,false,sizeof(visit));
	visit[r0][c0]=true;
	while(!que.empty()){
		int size=que.size()/2;
		for(int i=0;i<size;i++){
			r0=que.front();que.pop();
			c0=que.front();que.pop();
			for(int j=0;j<8;j++){
				int r1=r0+dr[j];
				int c1=c0+dc[j];
				if(r1>=1&&r1<=r&&c1>=1&&c1<=c&&
				arr[r1][c1]=='.'&&!visit[r1][c1]){
					visit[r1][c1]=true;
					que.push(r1);
					que.push(c1);
				}
			}
		}
		day++;
	}
	--day;
	printf("%d",day);
	return 0;
}
